package net.pimpas.report.processor.manager;

import java.util.List;

import org.hibernate.criterion.DetachedCriteria;

import net.pimpas.report.processor.condition.Condition;
import net.pimpas.report.processor.exception.ReportProcessorExportException;
import net.pimpas.report.processor.exception.ReportProcessorImportException;
import net.pimpas.report.processor.projection.Projection;
import net.pimpas.report.processor.tree.Tree;

public interface ReportProcessorManager {

	ReportProcessorPersistence exportToBean(Tree tree, List<Condition> conditions, List<Projection> projections)
		throws ReportProcessorExportException;
	
	String exportToXml(ReportProcessorPersistence processor)
		throws ReportProcessorExportException;
	
	DetachedCriteria importFromBean( ReportProcessorPersistence processor )
		throws ReportProcessorImportException;
	
	DetachedCriteria importFromXml( String xml )
		throws ReportProcessorImportException;

}